iT邦幫忙

2022 iThome 鐵人賽

DAY 26
0
自我挑戰組

老菜雞挑戰30天學爆Unity&C#會成功嗎?...系列 第 26

【Day26】老菜雞學下樓梯遊戲之如何讓遊戲暫停(Unity Time.timeScale)

  • 分享至 

  • xImage
  •  

前言

昨天把音效的部分都搞定後,接著要來進入遊戲尾聲,也就是要做出遊戲結束畫面,讓玩家可以有體驗到遊戲輸了的效果,而不是無止盡地在玩。


Time.timeScale

意思:時間流逝的倍速

可以用於慢動作效果或加速遊戲。例如:timeScale=1.0時,時間與實際上的速度一樣快。當 timeScale=2.0時,就像兩倍速一樣,整個遊戲會加快兩倍。

然而當timeScale被設置為零時,遊戲就會像暫停一樣。
ps.負值會被忽略。
參考連結:https://docs.unity3d.com/ScriptReference/Time-timeScale.html

遊戲暫停

接下來為了要做出遊戲結束的畫面,就是當Player死亡(它的HP等於0或是它掉出視窗)會跑出的畫面,那要達到這個效果首先得要讓遊戲暫停,然後在視窗中間出現按鈕,詢問玩家要不要重玩這個遊戲。

在Player.cs程式碼這邊得先找到血量等於0的判斷式,也就是ModifyHp方法裡的else if(Hp <= 0),那想要將遊戲暫停的話,可以設定Time.timeScale的值,把它設定成倍,那零倍的話就是整個遊戲就凍結起來,沒有時間可言,就像暫停一樣。

所以要加這行程式碼在ModifyHp方法裡的else if(Hp <= 0)判斷式裡,及OnTriggerEnter2D方法碰到DeathLine的判斷式裡。

Time.timeScale = 0f;

可以看到當血量被扣光時,遊戲會暫停。

接著我們來檢查當Player掉下視窗=碰到DeathLine時會不會暫停遊戲。

成功~


  • 參考網址:https://www.youtube.com/watch?v=nPW6tKeapsM&ab_channel=GrandmaCan-%E6%88%91%E9%98%BF%E5%AC%A4%E9%83%BD%E6%9C%83

  • 音效、圖片 : 遊戲素材
    (素材由安德斯提供,感謝大大/images/emoticon/emoticon41.gif)


上一篇
【Day25】老菜雞學下樓梯遊戲之新增音效review(Unity Audio Source)
下一篇
【Day27】老菜雞學下樓梯遊戲之新增按鈕(Unity UI Button)
系列文
老菜雞挑戰30天學爆Unity&C#會成功嗎?...30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言